#pragma once

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

uint32_t csem_interval();

// 仅编译通过
#define WAKE2SLEEP_INTERVAL_TIME 0
#define MINIMUM_SLEEP_TIME 0
/**
 * N3DeepSleep期心率差值，心率要相等或有下降才能算是N3
 * 小于这个值的才会是N3
 */
#define N3_HR_DIFF_THRESHOLD 1
/**
 * N3 DeepSleep期HRV变化阈值，HRV变化不能高于阈值
 * 小于这个值的才会是N3
 */
#define N3_HRV_DIFF_THRESHOLD 5
/**
 * N1-REM计步差值阈值
 * 超过这个阈值是REM
 */
#define N1_STEPS_DIFF_THRESHOLD 0
// REM期心率差值，心率上升才算是REM
#define REM_HR_DIFF_THRESHOLD 1
// REM期HRV差值，HRV上升才算是REM
#define REM_HRV_DIFF_THRESHOLD 1
//  REM期motion最小阈值，大于这个阈值才可能是REM
#define REM_MIN_MOTION_THRESHOLD (csem_interval() * 4)
// REM期motion最大阈值，大于这个阈值就是WAKE
#define REM_MAX_MOTION_THRESHOLD (csem_interval() * 30)
// REM期计步差值，大于这个差值是WAKE
#define REM_STEPS_DIFF_THRESHOLD 1

#ifdef __cplusplus
}
#endif